/*

金币翻转特效+

给每个硬币加属性posX 坐标x
posY坐标γ , bool flag正反面标志

给MyCoin加函数changlag 改变标志
如果是flag为true改为false并且开启定时器 1 ( 正面翻反面)
如果flag为false ,改为true,并且开启定时器2 ( 反面翻正面)
实现定时器中的内容。

测试金币翻银市以及银币翻金币

解决快速点击的效果不好
在 MyCoin中加入了isAnimation 判断是否正在做动画条件
当按下MyCoin判断是否在做动画，如果做动画，直接return, 保证金币和银币
动态切换的完整效果。


判断胜利+

PlayScene.中添加isWin的标志来判断是否胜利+

如果胜利了:打印胜利信息+

将所有按钮屏蔽掉点击

 */

#include "mycoin.h"
#include<QDebug>
//MyCoin::MyCoin(QWidget *parent) : QWidget(parent)
//{

//}
 MyCoin:: MyCoin(QString btnImg)
 {
     QPixmap pix;

     bool ret=pix.load(btnImg);
     if(!ret)
     {
         QString str=QString("图片%1加载失败").arg(btnImg);
         qDebug()<<str;
         return;
     }

     this->setFixedSize(pix.width(),pix.height());
     this->setStyleSheet("QPushButton{border:0px}");
     this->setIcon(pix);
     this->setIconSize(QSize(pix.width(),pix.height()));

     //初始化定时器
     timer1 =new QTimer(this);
     timer2 =new QTimer(this);
     //监听正面翻反面的信号  并且翻转金币

     connect(timer1,&QTimer::timeout,[=](){

         QPixmap pix;
         QString str=QString(":/res/Coin000%1.png").arg(this->min++);
         pix.load(str);

         this->setFixedSize(pix.width(),pix.height());
         this->setStyleSheet("QPushButton{border:0px}");
         this->setIcon(pix);
         this->setIconSize(QSize(pix.width(),pix.height()));

         //翻转完了 将min重置为1
         if(min>max)
         {
             min=1;
             timer1->stop();
             isAnimation=false;
         }
     });

     //监听反面翻正面的信号  并且翻转金币

     connect(timer2,&QTimer::timeout,[=](){

         QPixmap pix;
         QString str=QString(":/res/Coin000%1.png").arg(this->max--);
         pix.load(str);

         this->setFixedSize(pix.width(),pix.height());
         this->setStyleSheet("QPushButton{border:0px}");
         this->setIcon(pix);
         this->setIconSize(QSize(pix.width(),pix.height()));

         //翻转完了 将max重置为8
         if(max<min)
         {
             max=8;
             timer2->stop();
             isAnimation=false;
         }
     });
     //改变正反面标志的方法
 }
void  MyCoin::mousePressEvent(QMouseEvent*e)
{
    if(this->isAnimation||this->isWin)
    {
        return;
    }

    else
    {
        QPushButton::mousePressEvent(e);
    }
}
void MyCoin::changeFlag()
{
    //如果是正面就翻转
    if(this->flag)
    {
        //开始正面翻方法的定时器
        timer1->start(30);
        isAnimation=true;
        this->flag=false;
    }
    //反面翻正面的定时器
    else
    {
        timer2->start(30);
        isAnimation=true;
        this->flag=true;
    }

}
